home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Merciful 5
/
Merciful - Disc 5.iso
/
software
/
r
/
real_3d
/
real3dv3.3b.dms
/
real3dv3.3b.adf
/
RPL.LZH
/
RPL
/
dumpobj.rpl
< prev
next >
Wrap
Text File
|
1995-07-08
|
4KB
|
144 lines
(
( Recursively scans through the object tree and prints out object attributes
(
1 CONSTANT DUMPOBJECTS
"objects.rpl" LOAD
"locks.rpl" LOAD
300 STRING sBuffer
: DmpStr ( sString aFile )
FETCH FPUTS 0 < IF
"Cannot write to a file" ERROR
ENDIF
;
: DmpNL ( aFile )
10 STRING tmp
"|n" tmp SPRINTF
tmp SWAP DmpStr
;
: DmpAttr ( iStatus aFile )
SWAP
IF
" X " SWAP DmpStr
ELSE
" . " SWAP DmpStr
ENDIF
;
: DmpObjAttrs
PARAM
VARIABLE iCnt ( recursion depth
VARIABLE aFile
VARIABLE aObject
ENDPARAM
VARIABLE iFlags
( handle indenting
iCnt FETCH 0
DO
" " aFile DmpStr
LOOP
( name
aObject FETCH O.sNAME + "%-16s" sBuffer SPRINTF
sBuffer aFile DmpStr
( handle indenting
26 iCnt FETCH - 1
DO
" " aFile DmpStr
LOOP
"|" aFile DmpStr
( Boolean OR/AND
aObject FETCH O.wTYPE + WFETCH wOT_AND = aFile DmpAttr
( Object Flags
aObject FETCH O.iFLAGS + FETCH DUP
lOF_INVERTED BAND aFile DmpAttr DUP
lOF_PAINTED BAND aFile DmpAttr DUP
lOF_WFINVISIBL BAND aFile DmpAttr DUP
lOF_RTINVISIBL BAND aFile DmpAttr DUP
lOF_COLLINV BAND aFile DmpAttr DUP
lOF_TEXTURE BAND aFile DmpAttr DUP
lOF_PROTECTED BAND aFile DmpAttr DUP
lOF_PROTECTL2 BAND aFile DmpAttr DUP
lOF_MOTION BAND aFile DmpAttr DUP
lOF_LIGHTSOURC BAND aFile DmpAttr DUP
lOF_BBOX BAND aFile DmpAttr DUP
lOF_HOLLOW BAND aFile DmpAttr DUP
lOF_NOBP1 BAND aFile DmpAttr DUP
lOF_NOBP2 BAND aFile DmpAttr DUP
lOF_INFINITE BAND aFile DmpAttr DUP
lOF_TRIMCURVE BAND aFile DmpAttr DUP
lOF_SCENE BAND aFile DmpAttr DUP
lOF_NOTREFL BAND aFile DmpAttr DUP
lOF_MATTE BAND aFile DmpAttr DUP
lOF_SHADOWLESS BAND aFile DmpAttr DUP
lOF_BUMPSHADOW BAND aFile DmpAttr
DROP
aFile DmpNL
;
: DmpObj
PARAM
VARIABLE aObj ( object to be dumped
VARIABLE iLevel ( recursion level for indenting
VARIABLE aFile
ENDPARAM
( Dump object attributes to a file
iLevel FETCH aFile FETCH aObj FETCH DmpObjAttrs
( recursively handle sub objects
aObj FETCH O_GETSUB
BEGIN DUP WHILE
DUP iLevel FETCH 1 + aFile FETCH DmpObj
O_GETNEXT
REPEAT
DROP
;
: DmpObjects
PARAM
VARIABLE aFileName
ENDPARAM
VARIABLE aFile
( Open file
aFileName FETCH "w" FOPEN DUP aFile STORE
NOT IF
aFileName FETCH "Cannot open file %s" ERROR
ENDIF
( Print out header
"------------------------------------------------------------------------------------------------------------" aFile DmpStr aFile DmpNL
" | Boolean Invisib M Prot M L B Type I T S N M Shadow" aFile DmpStr aFile DmpNL
" | -------- ------- A ---- B I B ------- N R C O A ------" aFile DmpStr aFile DmpNL
" | A I P W R C P P P L G O H 1 2 F I E R T C B " aFile DmpStr aFile DmpNL
" | N N N F T D P 1 2 U H X O B B I M N E T S M " aFile DmpStr aFile DmpNL
" Objects | D V T I R T L P P N C E F E T P " aFile DmpStr aFile DmpNL
"------------------------------------------------------------------------------------------------------------" aFile DmpStr aFile DmpNL
( Dump objects
iLOCK_SHARED O_LOCK
O_GETROOT 1 aFile FETCH DmpObj
iLOCK_REMOVE O_LOCK
( close file
aFile FETCH FCLOSE
;
"ram:dump.txt" DmpObjects
FORGET DUMPOBJECTS